#include <bits/stdc++.h>

using namespace std;

const int maxn=100005;

int a[maxn],n;

inline void Gauss(){
    int cnt;cnt=1;
    for(int mask=1<<30;mask;mask>>=1){
        int i;
        for(i=cnt;i<=n;i++) if(mask&a[i]) break;
        if(i>n) continue;
        swap(a[cnt],a[i]);
        for(int i=1;i<=n;i++) if(i!=cnt&&(a[i]&mask)) a[i]^=a[cnt];
        cnt++;
    }
    n=cnt-1;
}

inline int read(){
    char c;int r;bool f=0;
    for(c=getchar();c>'9'||c<'0';c=getchar()) if(c=='-') f=1;
    for(r=0;c<='9'&&c>='0';c=getchar()) r=r*10+c-'0';
    if(f) return -r;
    else return r;
}

int main(){
    n=read();
    for(int i=1;i<=n;i++) a[i]=read();
    Gauss();
    int ans=a[1];
    for(int i=2;i<=n;i++) ans^=a[i];
    //printf("%d\n",a[n]);
    printf("%d %d\n",ans,ans^a[n]);
    return 0;
}
